package com.application.model.elegircolegio;

import java.util.Collection;

import com.application.model.elegircolegio.entries.ElegirColegioElement;
import com.application.model.elegircolegio.entries.ElegirColegioEntity;
import com.application.model.xml.ConfigurationManager;

public class ManagerElegirColegioEntity {
	private static final String nombreArchivo="./log/elegir.colegios.xml";
	

	private ElegirColegioEntity	elegirColegioEntity;
	
	public ManagerElegirColegioEntity() {
		elegirColegioEntity = new ElegirColegioEntity();
	}
	
	public void agregarNuevaInformacion(String nameColegio, String pais, String provincia, String partido, String direccion, String zonaKey) {
    	ElegirColegioElement colegio = getElegirColegioElement(nameColegio);
    	if(colegio==null){
    		colegio = new ElegirColegioElement();
    		//colegio.setNombreColegio(escapeValue(nameColegio));
    		colegio.setNombreColegio(nameColegio);
    		colegio.setPais(pais);
    		colegio.setProvincia(provincia);
    		colegio.setPartido(partido);
    		colegio.setDireccion(direccion);
    		colegio.setZonaKey(zonaKey);
    		addElegirColegioElement(colegio);
    	}
		
	}

	private String escapeValue(String dato){
		String value = "";
//		value = StringEscapeUtils.escapeXml(dato);
		value = dato;
		return value;
	}
	private void addElegirColegioElement(ElegirColegioElement colegio){
		elegirColegioEntity.addElement(colegio);
	}
	private ElegirColegioElement getElegirColegioElement(String nombreColegio){
		return elegirColegioEntity.getElegirColegioElement(nombreColegio);
	}
	public void save() {
		ConfigurationManager<ElegirColegioEntity> configuration = new ConfigurationManager<ElegirColegioEntity>();
        try {
			configuration.write(elegirColegioEntity, nombreArchivo,"UTF-8");
		} catch (Exception e) {			
			e.printStackTrace();
		}
	}

	public void load() {
		ConfigurationManager<ElegirColegioEntity> configuration = new ConfigurationManager<ElegirColegioEntity>();
        try {
        	elegirColegioEntity = configuration.load(nombreArchivo,"UTF-8");
		} catch (Exception e) {			
			e.printStackTrace();
		}
	}
	public void updateTipoEIdelogia(String nombreColegio,String tipo, String ideologia) {
		ElegirColegioElement colegio = getElegirColegioElement(nombreColegio);
    	if(colegio!=null){
    		colegio.setTipo(escapeValue(tipo));
    		colegio.setIdeologia(ideologia);
    	}
	}

	public void addJornada(String colegioNombre, String valor) {
		ElegirColegioElement colegio = getElegirColegioElement(colegioNombre);
    	if(colegio!=null){
    		colegio.addJornada(valor);    		
    	}
	}

	public void addNivel(String nameColegio, String nivel) {
		ElegirColegioElement colegio = getElegirColegioElement(nameColegio);
    	if(colegio!=null){
    		colegio.addNivel(nivel);    		
    	}
	}

	public void setUrlImagenLogo(String nombreColegio, String urlImagen) {
		ElegirColegioElement colegio = getElegirColegioElement(nombreColegio);
    	if(colegio!=null){
    		colegio.setUrlImagen(urlImagen);    		
    	}
	}

	public void addInfrastructuraYDescripcion(String nameColegio, String infraestructura, String descripcion) {
		ElegirColegioElement colegio = getElegirColegioElement(nameColegio);
    	if(colegio!=null){
    		colegio.setInfraestructura(infraestructura);
    		colegio.setDescripcion(descripcion);
    	}
	}

	public void addIdioma(String nameColegio, String idioma) {
		ElegirColegioElement colegio = getElegirColegioElement(nameColegio);
    	if(colegio!=null){
    		colegio.addIdioma(idioma);    		
    	}
	}

	public void setLocation(String nameColegio, String longitud, String latitud) {
		ElegirColegioElement colegio = getElegirColegioElement(nameColegio);
    	if(colegio!=null){
    		try{
    			if(!latitud.isEmpty()){
    				colegio.setLatitud(Double.valueOf(latitud));
    			}
    		}catch (Exception e) {
				e.printStackTrace();
			}
    		try{
    			if(!longitud.isEmpty()){
    				colegio.setLongitud(Double.valueOf(longitud));
    			}
    		}catch (Exception e) {
				e.printStackTrace();
			}    			
    	}
	}
	public Collection<ElegirColegioElement> getValues(){
		return this.elegirColegioEntity.getValues();
	}

	
}
